The present invention relates generally to application discovery in large computer systems and more specifically to automated detection of an application in a virtual machine image or in a virtual machine that is executing.
The administration of large computer systems to enhance their performance includes application discovery in virtual machines (VM) that may run on them. A VM is an application, sometimes called a hypervisor, that runs either directly on a host machine or under control of an operating system (OS) the runs on a host computer. A VM emulates the actions of the architecture, configuration, and devices of an emulated computer, a potentially different computer from the host. The VM emulates the execution of programs on it as the emulated computer would execute the programs. The programs the VM emulates are compiled to the instruction set of the emulated computer, not that of the host computer. An OS for the emulated computer may be installed on an appropriate VM and applications that are installed on that VM are run under the control of the OS, just as they would had they been installed directly on the emulated computer and run under the control of the same OS. A VM image is a file that contains a VM, the software installed on it, potentially an OS and applications installed on the OS, and the configuration of the physical computer that the VM emulates. Over time, collections of VM images may accrue, as each VM image may represent a physical machine configured for a specific purpose. A management of multiple VMs, in which the VMs may contain a variety of different applications and versions of different applications, requires timely information about the contents of the VMs.